﻿namespace ProblemsSet
{
    public class Problem_112 : BaseProblem
    {
        public override object GetResult()
        {
            long res = 0;
            long cur = 99;
            while(true)
            {
                cur++;
                if (MathLogic.IsBouncy(cur))
                    res++;
                var tmp = 100*res/cur;
                if (tmp == 99)
                    return cur;
            }

        }

        public override string Problem
        {
            get
            {
                return @"Working from left-to-right if no digit is exceeded by the digit to its left it is called an increasing number; for example, 134468.

Similarly if no digit is exceeded by the digit to its right it is called a decreasing number; for example, 66420.

We shall call a positive integer that is neither increasing nor decreasing a 'bouncy' number; for example, 155349.

Clearly there cannot be any bouncy numbers below one-hundred, but just over half of the numbers below one-thousand (525) are bouncy. In fact, the least number for which the proportion of bouncy numbers first reaches 50% is 538.

Surprisingly, bouncy numbers become more and more common and by the time we reach 21780 the proportion of bouncy numbers is equal to 90%.

Find the least number for which the proportion of bouncy numbers is exactly 99%.";
            }
        }

        public override bool IsSolved
        {
            get
            {
                return true;
            }
        }

        public override object Answer
        {
            get
            {
                return 1587000;
            }
        }

    }
}
